#include <iostream>
#include <vector>
#include <unistd.h>
using namespace std;

typedef void (*func)();

void PrintLog()
{
    cout<<"pid:"<<getpid()<<",打印日志，程序正在执行..."<<endl;
}

void InsertMySQL()
{
    cout<<"数据插入数据库，程序正在执行..."<<endl;
}

void NetRequest()
{
    cout<<"进行网络请求，程序正在执行..."<<endl;
}

//规定指令的类型为4字节int类型
#define COMMAND_LOG 0
#define COMMAND_MYSQL 1
#define COMMAND_NET 2
//需要对这些任务进行管理
class task
{
  public:
   task()  //对上面这些任务进行加载
   {
     funcs.push_back(PrintLog);
     funcs.push_back(InsertMySQL);
     funcs.push_back(NetRequest);
   }
   void Excute(int command)  //根据不同的命令执行不同的任务
   {
      if(command >= 0 && command < funcs.size())
      {
         funcs[command]();
      }
   }
   ~task()
   {}
  public:
   vector<func> funcs;
};